package com.cherish.web.menu.entity;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonInclude;
import lombok.Data;

import java.io.Serializable;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;

/**
 * Author:MQ
 * Date:2023/12/2620:48
 */
@Data
@TableName("T_SYS_Permission")
public class Menu implements Serializable {
    @TableId(type = IdType.AUTO)
    private long FId;
 
    private long FParentId;
    
    private String FParentName;
    // 菜单名称
    private String FLabel;
    private String FCode;
    // 路由地址
    private String FPath;
    // 路由名称
    private String FName;
    // 路由页面对应的路径
    private String FUrl;
    // 类型  (0 目录 1菜单，2按钮)
    private String FType;
    //菜单图标
    private String FIcon;
    private String FRemark;
    private Date FCreateTime;
    private Date FUpdateTime;
    // 菜单子集
    // 不是数据库字段需要排除
    // 实体类与Json互相转换的时候，属性值为null的不参与序列化
    @JsonInclude(JsonInclude.Include.NON_NULL)
    @TableField(exist = false)
    private List<Menu> children = new ArrayList<>();
    // 用于前端判断是目录、菜单、按钮
    @TableField(exist = false)
    private String FValue;
    // 该字段为非表字段
    @TableField(exist = false)
    private Boolean FOpen;
}
